1. Technical Field of the Invention
This invention relates to communication networks, and more specifically to the transmission of data packets over communication links requiring interpacket intervals.
2. Background Art
Network data traffic is composed of many pieces of information that are delivered from one sending computer or other such device to one or many other similar devices. Over many types of networks, the available bandwidth must be shared between many different senders and receivers. For both hardware- and software-related reasons, many networks require that an InterPacket Gap be introduced between the subsequent data packets that are delivered over a data network. The InterPacket Gap (IPG) is a minimum amount of time that must transpire between the transmission of one data packet and the beginning of the transmission of a subsequent data packet by the same sender. This invention describes a software method whereby a minimum IPG is introduced and guaranteed between subsequent data transmissions over a data network medium.
On most data networks, the data that is transmitted from sender to receiver is broken down into units called PACKETS, or DATAGRAMS. For the purpose of this invention, the terms are synonymous. Each packet requires some amount of time to transmit, depending on such factors as the size of the packet and the data transmission rate. The amount of time between the end of one transmission and the beginning of the next is known as the INTERPACKET GAP. FIG. 1 illustrates the concept. On CSMA/CD (Carrier Sense Multiple Access with Collision Detection) and other such network types, senders "listen" to the network to find periods of time during which the network is "idle" and available for transmitting data. Such networks impose a minimum InterPacket Gap on sending stations to allow other sending stations to recognize if and when they are able to transmit. In software, some networking protocols impose InterPacket Gap requirements also. In the IPX (Internetwork Packet exchange) protocol's RIP (Routing Information Protocol) component, for example, a minimum Interpacket Gap is required to allow receiving stations enough time to process the data they have received before they receive the next piece of data. With such requirements, a method is needed to introduce InterPacket Gaps in network transmissions while ensuring that it is at least as long as some minimum acceptable time period.
One method of introducing such gaps between packets is to record the time of the completion of the last packet sent. When a subsequent packet is to be sent, the current time is compared to the recorded time from the previous packet. If the amount of time that has transpired since the past packet is greater than the minimum gap allowable, the next packet is delivered and the process repeats. If the minimum amount of time has not transpired, the packet is stored and the time is checked again in the future.
It is an object of the invention to provide a system and method for introducing interpacket gaps in a manner transparent to the sending system application.
It is a further object of the invention to provide a system and method for encapsulating all of the system timer interfaces and datagram buffering data structures within a software object, such that a system needing the introduction of an IPG between network transmissions can do so transparently.
It is a further object to provide a system and method that allows an user system to make function calls as needed to deliver datagrams to a network without being aware of the mechanism making it possible.
It is still a further object of the invention to provide an intergap timer object wherein changes to the system timer interface, or storage data structure, may be made without the need for the calling system to be changed in any way.